package com.ruoyi.system.domain.vo;

import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
import com.alibaba.excel.annotation.ExcelProperty;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.ruoyi.common.annotation.ExcelDictFormat;
import com.ruoyi.common.convert.ExcelDictConvert;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;

import java.util.Date;
import java.util.List;


/**
 * 流程申请审批记录视图对象 lc_process_management_list
 *
 * @author ruoyi
 * @date 2023-08-10
 */
@Data
@ExcelIgnoreUnannotated
public class LcProcessManagementListVo {

    private static final long serialVersionUID = 1L;

    /**
     *
     */
    @ExcelProperty(value = "")
    private Long approveId;

    /**
     * 流程id
     */
    @ExcelProperty(value = "流程id")
    private Long processId;

    /**
     * 审批人集合
     */
    @ExcelProperty(value = "审批人集合")
    private String auditUserId;

    /**
     * 确认人id
     */
    @ExcelProperty(value = "确认人id")
    private Long verifyUserId;

    /**
     * 确认人名称
     */
    @ExcelProperty(value = "确认人名称")
    private String verifyUserName;

    /**
     * 审批类型(0发起（修订），1会签，2审核，3签发)

     */
    @ExcelProperty(value = "审批类型(0发起", converter = ExcelDictConvert.class)
    @ExcelDictFormat(readConverterExp = "修=订")
    private Integer auditType;

    /**
     * 审批步骤
     */
    @ExcelProperty(value = "审批步骤")
    private Integer sort;

    /**
     * 类型(0:并行 1:串行)
     */
    @ExcelProperty(value = "类型(0:并行 1:串行)")
    private Integer executionType;

    /**
     * 审批状态(0:待审批 1:审批中 2:审批通过 3:审批不通过)
     */
    @ExcelProperty(value = "审批状态(0:待审批 1:审批中 2:审批通过 3:审批不通过)")
    private Integer auditState;

    /**
     * 审批意见
     */
    @ExcelProperty(value = "审批意见")
    private String context;

    /**
     * 版本
     */
    @ExcelProperty(value = "版本")
    private String processVersion;

    /**
     * 流程名称
     */
    @ExcelProperty(value = "流程名称")
    private String processName;

    /**
     * 流程编号
     */
    @ExcelProperty(value = "流程编号")
    private String processNo;

    /**
     * 主办部门id
     */
    @ExcelProperty(value = "主办部门id")
    private Long deptId;

    /**
     * 主办部门名称
     */
    @ExcelProperty(value = "主办部门名称")
    private String deptName;

    private String nodeName;

    private String auditName;

    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date updateTime;

    private List<LcProcessManagementListVo> lcProcessManagementListVos;

}
